package com.egg.eggdemo;

import redis.clients.jedis.Jedis;

import java.util.concurrent.CountDownLatch;

public class EggBreakTest {
    public static void main(String[] args) {
        // 先初始化服务
        EggBreakService service = new EggBreakService();

        // 模拟单个用户砸蛋
//        String userId = "user1";
//        System.out.println("第一次砸蛋: " + service.breakEgg(userId));
//        System.out.println("同一天再砸: " + service.breakEgg(userId));

        // 模拟第二天
//        service.dailyReset();
//        System.out.println("第二天砸蛋: " + service.breakEgg(userId));
//

        // 模拟7天活动
//        for (int day = 1; day <= 7; day++) {
//            System.out.println("\n=== 第" + day + "天 ===");
//            System.out.println("第一次砸蛋: " + service.breakEgg(userId));
//            System.out.println("第二次尝试: " + service.breakEgg(userId));
//
//            // 每天结束后重置
//            if (day < 7) {
//                System.out.println("执行每日重置...");
//                service.dailyReset();
//            }
//        }

        // 模拟多用户并发砸蛋:
        // (1)基础版：模拟3个用户顺序砸蛋------[顺序]模拟多用户
        String[] userId = {"user1", "user2", "user3"};

        for (String userid : userId) {
            System.out.println("\n=== 用户 " + userid + " ===");
            System.out.println("第一次砸蛋: " + service.breakEgg(userid));
            System.out.println("同一天再试: " + service.breakEgg(userid));
        }

        // (2)并发版 - 使用线程模拟真实场景------写到EggBreakMultipleTest类



        // 查看最终结果--Redis中的数据
        try (Jedis jedis = new Jedis("localhost", 6379)) {
            System.out.println("\n=== 最终状态 ===");
            System.out.println("用户记录: " + jedis.hgetAll("egg_break:user:" + userId));
            System.out.println("剩余奖券: " + jedis.hgetAll("egg_break:coupons"));
            System.out.println("当前天数: " + jedis.get("egg_break:current_day"));
        }

        service.close();
    }
}

